System and method for providing dynamic virtual reality ground effects

ABSTRACT

One or more embodiments of the present disclosure include a system for providing dynamic virtual reality ground effects. The system includes a user interface surface and multiple motors coupled to the user interface surface. At least one of the motors is coupled to a virtual reality component of an electronic device. A first motor of the multiple motors is driven by movement of the user interface surface and is used to generate a feedback electrical signal in response to the movement of the user interface surface. A second motor of the multiple motors is driven using the feedback electrical signal.

BACKGROUND

Devices such as a virtual reality headset and a treadmill may be used intandem to provide a virtual reality experience. For example, a treadmillmay be used to allow a user to walk while the user is experiencingvirtual reality content. When the user walks in place on the treadmill,the virtual reality content changes accordingly so that the user appearsto walk across a surface.

SUMMARY

Certain systems that use a treadmill for virtual reality experienceshave several problems. In such systems, the effort required to overcomeinertia or momentum associated with the treadmill creates an unrealisticvirtual reality experience when a user begins or stops walking orrunning or changes walking/running speed. Furthermore, such systems donot dynamically limit the user's walking or running speed, thus allowingusers to fall off the treadmill while using the system if the userbegins moving too fast or too slow. In addition, some treadmill-basedsystems do not provide a realistic virtual reality experience when theuser is moving over certain types of virtual surfaces or in certaintypes of virtual reality environments.

In view of the above shortcomings in certain systems, there is a needfor a system that provides for realistic movement of a user interfacesurface (e.g., on a treadmill or other mechanism) so that such movementscan more closely correspond to virtual reality content presented to theuser. In one or more embodiments, more realistic movement is provided bymultiple motors coupled to a user interface surface. At least one of themotors can be used to assist a user in overcoming inertia associatedwith the user interface surface, for example when the user beginswalking or running. Additionally or alternatively, when the user stopswalking, the motor(s) may be used to dampen the inertia of the userinterface surface. Further, at least one of the motors can be used todynamically slow the user interface surface down when the user begins tomove too fast and is in danger of falling off the user interfacesurface. At least one of the motors can be used to control the userinterface surface to simulate different surfaces that may be presentedto the user in the virtual reality or other content, such as snow andother types of surfaces.

In this connection, one or more embodiments of the present disclosureinclude systems, methods, and devices capable of providing dynamicvirtual reality ground effects, as well as interconnected motor(s),processor(s), and/or circuitry, to control a user interface surface(e.g., a treadmill-like apparatus) based on one or more ofcharacteristics of the user interface, virtual reality or other contentpresented to a user, the user's movement, and other features that willbe described herein.

One or more embodiments of the disclosure involve a system for providingdynamic virtual reality ground effects. The system may include a userinterface surface and multiple motors coupled to the user interfacesurface. At least one of the motors is coupled to a virtual realitycomponent of an electronic device. A first motor of the multiple motorsis driven by movement of the user interface surface and is used togenerate a feedback electrical signal in response to the movement of theuser interface surface. A second motor of the multiple motors is drivenusing the feedback electrical signal.

The system may also include a third motor of the multiple motors that isdriven using a source. The virtual reality component is optionallyadapted to vary an input electrical signal applied to the third motorusing the source. The virtual reality component may also be adapted tovary the input electrical signal applied to the third motor based onvirtual reality content presented using a display coupled to theelectronic device. The source may be a voltage source and the virtualreality component may be adapted to vary the input electrical signal bycyclically changing a voltage applied to the third motor.

In one or more embodiments, the second motor is driven by a reversepolarity version of the feedback electrical signal. The second motor maybe driven by the reverse polarity version of the feedback electricalsignal when a detected speed of the user interface surface exceeds athreshold. The system may include a third motor of the multiple motorsthat is driven using a voltage source, and when the detected speedexceeds the threshold, the third motor may be driven with a reversepolarity voltage from the voltage source. In one or more embodiments, astraight polarity version of the feedback electrical signal is used todrive the second motor when the user interface surface transitions froma stationary to a non-stationary state.

In one or more embodiments, the virtual reality component is adapted touse an electrical signal generated using at least one of the multiplemotors to make a change to virtual reality content presented to a uservia a display associated with the electronic device. The change to thevirtual reality content may include a directional change, a rotationalchange, or a vertical change.

One or more embodiments of the disclosure involve a method for providingdynamic virtual reality ground effects. The method includes a userinterface surface obtaining user input. The method also includes theuser interface moving in response to the user input and driving a firstmotor. The method further includes the first motor generating a feedbackelectrical signal in response to movement of the user interface surface.Additionally, the method includes driving a second motor using thefeedback electrical signal, where the second motor is coupled to theuser interface surface.

The method optionally includes driving a third motor using a source,where the third motor is coupled to the user interface surface. Themethod may also include varying an input electrical signal that isapplied to the third motor using the source. Varying the inputelectrical signal may be done using virtual reality content presented toa user of the user interface surface. The source may be a voltage sourceand varying the input electrical signal may include cyclically changinga voltage applied to the third motor.

In one or more embodiments of the method, if a detected speed of theuser interface surface exceeds a threshold, driving the second motorusing the feedback electrical signal includes driving the second motorby a reverse polarity version of the feedback electrical signal. Themethod may further include driving the third motor with a reversepolarity voltage from a voltage source if the detected speed of the userinterface surface exceeds the threshold.

In one or more embodiments, the method further includes using anelectrical signal generated using one or more of the first motor and thesecond motor to change virtual reality content.

One or more embodiments of the disclosure involve an electronic devicefor providing dynamic virtual reality ground effects. The electronicdevice includes logic circuitry coupled to a memory. The memory storesinstructions that, when executed, cause the logic circuitry to performcertain operations. One such operation is to obtain movement informationfor a user interface surface using one or more motors. Another suchoperation is to use the movement information to change virtual realitycontent presented to a user by a display. Another such operation is tocontrol the user interface surface by changing electrical signals usedto drive one or more of the motors.

BRIEF DESCRIPTION OF THE DRAWINGS

Further aspects of the present disclosure will be more readilyappreciated upon review of the detailed description of the variousdisclosed embodiments, described below, when taken in conjunction withthe accompanying figures.

FIG. 1A illustrates an example system used to provide dynamic virtualreality ground effects in accordance with one or more embodiments of thedisclosure.

FIG. 1B illustrates an example user interface surface in accordance withone or more embodiments of the disclosure.

FIG. 1C illustrates an example electronic device according to one ormore embodiments of the disclosure.

FIG. 2A is an operational flow diagram illustrating an example ofproviding dynamic virtual reality ground effects.

FIG. 2B illustrates additional features that may be associated withproviding dynamic virtual reality ground effects.

FIG. 2C illustrates additional features that may be associated withproviding dynamic virtual reality ground effects.

FIG. 3 illustrates an example computing module that may be used toimplement features of one or more embodiments of the disclosure.

The figures are described in greater detail in the description andexamples below. Examples are provided for purposes of illustration only,and merely depict typical or example embodiments of the disclosure. Thefigures are not intended to be exhaustive or to limit the disclosure tothe precise form disclosed. It should also be understood that thedisclosure may be practiced with modification or alteration, and thatthe disclosure may be limited only by the claims and the equivalentsthereof.

DETAILED DESCRIPTION

One or more embodiments of the present disclosure are directed tosystems, methods, and devices for providing dynamic virtual realityground effects and content. In various examples described herein,movement of a user interface surface is modified and/or controlled tobetter match, fit with, or otherwise relate to virtual reality contentthat is being displayed to a user, thus providing the user with animproved and/or more realistic virtual experience.

The details of some example embodiments of the systems, methods, anddevices of the present disclosure are set forth in this description andin some cases, in other portions of the disclosure. Other features,objects, and advantages of the disclosure will be apparent to one ofskill in the art upon examination of the present disclosure,description, figures, examples, and claims. It is intended that all suchadditional systems, methods, devices, features, and advantages beincluded within this description (whether explicitly or by reference),be within the scope of the present disclosure, and be protected by oneor more of the accompanying claims.

FIG. 1A depicts an example of system 100 that may be used to providedynamic virtual reality ground effects. As shown in FIG. 1A, one or moreembodiments of system 100 include motor 102, motor 104, and/or motor106, one or more of which may be coupled to user interface surface 108.System 100 may alternatively or additionally include one or more ofmotors 103 that in combination with one or more of motor 102, motor 104,and/or motor 106 can be used to control the virtual reality experienceof a user.

FIG. 1B shows example user interface surface 108 that in one or moreembodiments includes holes 109. User interface surface 108 may includerubber or other reasonably pliable and/or durable material. Userinterface surface 108 may use or include a surface coupled to or incontact with one or more movable apparatuses, such as a wheels or thelike, such that user interface surface 108 may move in response to usermovement or force. In one or more embodiments, user interface surface108 includes a treadmill-like surface. User interface surface 108 mayallow asymmetric differential and localized motion effects. That is, inone or more embodiments, not all portions of user interface surface 108need to move in uniform fashion, thus enabling flexibility in theaspects of movement that can be detected using user interface surface108 and the types of feedback and/or ground effects that can be providedusing user interface surface 108 and motors 102, 103, 104, and/or 106.User interface surface 108 may be at least partially surrounded by(padded) bars or other elements that can be used to prevent a user fromfalling off user interface surface 108.

Returning to FIG. 1A, the number of motors used in system 100 is notlimited and may vary depending on the desired virtual reality experienceor other parameters. In one or more embodiments, system 100 providesdynamic virtual reality ground effects using multiple motors that may beconnected to user interface surface 108. Source/sink 110 (e.g., avoltage or current source) may be coupled to any of motors 102, 103,104, and 106, to provide a voltage, current, and/or other electricalsignals to the motor(s) and/or to obtain or generate a voltage, current,and/or other signal using the motor(s).

Motor(s) 102, 103, 104, and/or 106 in system 100 may be used to controlor assist with the movement of user interface surface 108. Motor(s) 102,103, 104, and/or 106 may also act as generators by generating electricalsignals that may be used to drive, provide input to, and/or controlother components of system 100, such as other motor(s), user interfacesurface 108, and electronic device 112 (including, e.g., virtual realitycomponent 134, shown in FIG. 1B), as described herein. Further, motors102, 103, 104, and/or 106 may act as self-regulating generators in afeedback loop, in that one or more motors 102, 103, 104, and 106 thatmay be in the feedback loop may be used to generate electrical signalsused to drive one or more other motors 102, 103, 104, and/or 106 in thefeedback loop to control, assist in, and/or regulate the movement ofuser interface surface 108, as described herein.

Via communication media 116, electronic device 112 may be coupled to anyof motors 102, 103, 104, and 106 and/or to user interface surface 108.In this manner, electronic device 112 may provide input to the motor(s)and/or to user interface surface 108 for control purposes, and/or mayobtain input from the motor(s) and/or user interface surface 108 forpurposes of controlling virtual reality or other content (e.g.,augmented reality content) that may be presented to the user. Asdescribed in connection with FIG. 1B, among other features, electronicdevice 112 may include virtual reality component 134 that may be used tocontrol the motor(s) and/or user interface surface 108 and/or to controlthe virtual reality or other content presented to the user. It shouldalso be appreciated that additional electronic/remote devices may becoupled to components within system 100 via communication media 116. Aswill be described in detail herein, electronic device 112, motors 102,103, 104, 106, user interface surface 108, and/or additional remotedevices may exchange communications signals via communication media 116,including, for example, movement information, voltages and/or currentsgenerated using motor(s) 102, 103, 104, 106 and/or electronic device112, and information representing aspects of virtual reality or othercontent for display to a user of system 100.

Motors 102, 103, 104, and 106 may act as input and/or output devices.For example, in response to movement of user interface surface 108, anyof motors 102, 103, 104, 106 may be used to generate electrical signalsthat may be applied to other motors 102, 103, 104, 106, source/sink 110,virtual reality component 134 (as shown in FIG. 1B), electronic device112 (e.g., via communication media 116), and/or additionalelectronic/remote devices (e.g., via communication media 116). It shouldbe noted that user interface surface 108 can be used to detect a user'sdesired movement by monitoring or otherwise detecting a user's footpressure or force on user interface surface 108. The detected pressureor force may be provided to electronic device 112, which may process theprovided information for purposes of controlling motor(s) 102, 103, 104,106. Motor(s) 102, 103, 104, 106 may then control user interface surface108 to track the desired movement. In this example situation and inother embodiments of the disclosure, it is not necessarily the user'smovement or muscle exertion that propels user interface surface 108, anduser interface surface 108 does not necessarily continue to move basedon momentum/friction in a physically-based manner. Rather, userinterface surface 108 can be electronically controlled using electronicdevice 112. Motors 102, 103, 104, and 106 may obtain electrical signalsfrom any number of sources, including user interface surface 108, othermotors 102, 103, 104, 106, electronic device 112 (e.g., viacommunication media 116), virtual reality component 134, and/oradditional electronic/remote devices (e.g., via communication media116). As will be described herein, the foregoing electrical signals maybe used to control the various components of system 100, including tocontrol the movement of user interface surface 108, and hence provide adynamic and improved virtual reality experience.

By way of example, the various components of system 100 may be used toprovide an improved virtual reality content experience, including, e.g.,where system 100 is designed to detect multiple aspects of usermovement, gestures, and/or poses in order to provide dynamic feedbackfor improving the user experience. For example, system 100 may controlthe movement of user interface surface 108 when a user begins to walk orrun, stops walking or running, or changes walking or running speeds. Inthis manner, the inertia associated with user interface surface 108,which may cause an unrealistic walking experience, may be overcome. Inone or more embodiments, motor 102 may be driven by movement of userinterface surface 108 caused by the user of system 100. Motor 102 may becoupled to motor 104 in order for motor 102 and motor 104 to communicatewith each other (e.g., in a feedback loop). Motor 104 may be driven byfeedback signals generated using and/or obtained from motor 102. Forexample, motor 102 may be used to generate a feedback electrical signal(e.g., a voltage or current) that may be applied to and used to drivemotor 104, in response to the movement of user interface surface 108.This feedback electrical signal may cause motor 104 to reduce theinertia effects associated with user interface surface 108 and thuscreate a more realistic virtual reality experience for the user ofsystem 100. In this manner, motor 102 may act as a self-regulatinggenerator in the feedback loop, in that motor 102 may be used togenerate electrical signals used to drive motor 104 to control, assistin, and/or regulate the speed and movement of user interface surface 108in response to user-generated input.

By way of example, if the user transitions from a stationary tonon-stationary state, this transition may be detected and the movementof motor 102 may be used to generate a feedback electrical signal. Astraight polarity version of this feedback electrical signal may then befed back to motor 104 to cause motor 104 to assist in the process ofspeeding up user interface surface 108. In this manner, a feedbackconfiguration of motors 102 and 104 may be used to prevent unnaturalground drag as the user begins transitioning to a non-stationary state.Additionally, system 100 may reposition a user that is about to walk orfall off of user interface surface 108. As an example, the user ofsystem 100 may be running and suddenly reduce speed to a walking orstationary state. Due to inertia, user interface surface 108 mayinitially continue to move at the increased rate of speed, and may pullthe user toward an edge of user interface surface 108. Motor 102 maydetect the user's deceleration and may be used to generate a reversepolarity version of a feedback signal to drive motor 104 to beginbraking and slowing the movement of user interface surface 108 toovercome the inertia thereof and better match the speed of the userbefore the user falls off user interface surface 108.

Motors 102, 103, 104, and 106 of system 100 may also be used to controlincreased speed of motion when user interface surface 108 exceeds athreshold speed. For example, when a detected speed of user interfacesurface 108 meets or exceeds a threshold, motor 102 may be used togenerate a reverse polarity version of a feedback electrical signal formotor 104. The reverse polarity signal may then drive motor 104 todynamically counter motor 102, thus reducing the speed of user interfacesurface 108 and helping reposition the user and/or prevent the user fromreaching unsafe speeds or from running off user interface surface 108.

System 100 may also be used to generate ground-initiated phenomena, forexample, vibration or dynamic external forces such as vehicleacceleration or walking through snow or on another surface. By way ofillustration, if the user comes across water, sand, snow, mud, slime, oranother surface in the virtual reality or other environment, source/sink110 (as described in further detail below) may be used to generate anelectrical signal that can cause motor 106 to increase a resistanceassociated with user interface surface 108. This increased resistancemay require the user to exert additional force to take each step andmove user interface surface 108, thus simulating the increaseddifficulty of walking through water, sand, snow, mud, slime, etc. Theincreased resistance may be effected using motor 106. By way of example,motor 106 may obtain cyclically changing voltages or currents fromsource/sink 110, as described in further detail below, to (in some casesrapidly) increase and/or decrease the resistance of user interfacesurface 108 to movement, in order to simulate the experience of walkingon/in such abnormal surfaces. A controller may be used in the feedbackloop between motor 102 and motor 104 to generate ground-initiatedphenomena using motor 104 instead of or in addition to motor 106.

System 100 may also be used to detect user movement and poses to allowuser gestures, such as turning, leaning, climbing, crouching, jumping,or sitting, to control commands or requests and change virtual realityor other content presented to the user. Further gestures may include auser performing hand movements/gestures. As an example, while walking, auser may wish to position user's body closer to the right side of userinterface surface 108, to cause the perspective in a virtual reality orother environment to begin turning to the right. A virtual reality orother environment may include any simulation, game, training/educationalservice, social space, work space, etc., that may be designed to immersea user in a virtual reality or other environment. As the user movescloser to the right edge of user interface surface 108, motors 102and/or 104, for example, which may be on the right side of userinterface surface 108, may turn faster than, for example, motor 106,which may be on the left of user interface surface 108, and thus be usedto generate a relatively higher voltage, current, or other signal. Thesedifferences in voltage/current etc. may be interpreted as auser-generated command to cause the perspective in the virtual realityor other environment to turn to the right.

Sensors, such as infrared cameras or other sensors, may also be employedto provide dynamic virtual reality ground effects. For example, aninfrared camera may capture movement of a user's foot regardless ofwhether the user's foot is in contact with user interface surface 108.The infrared camera or other sensor may, by way of illustration, becoupled to electronic device 112 and provide electronic device 112 withcaptured information. Electronic device 112 can then process thecaptured information to provide, among other things, control of motor(s)102, 103, 104, 106. Alternatively or additionally, electronic device 112can use the captured information to estimate or predict the user'smovement on user interface surface 108, the appropriate ground effectsthat should be implemented on a going forward basis, the appropriatemotor control(s) that should be implemented, the appropriate changes tovirtual reality or other content displayed to a user, etc.

Additionally, a user may take a step with user's foot positioned at anangle, thus exerting more force toward the edge of user interfacesurface 108. If a user steps in this fashion with the user's right footbut not the left foot, for example, motors 102 and/or 104 may spinfaster than motor 106 (assuming motors 102 and/or 104 are on the rightside of user interface and motor 106 is on the left side of userinterface 108, which need not be the case). Motors 102 and/or 104 maythus be used to generate relatively higher microcurrents or voltagesthan motor 106 in response to this user input. These microcurrentsand/or voltages may be interpreted as a user-generated command toinstruct, for example, a character in the virtual reality or otherenvironment to move to the right, by way of illustration to avoid anobject or projectile in the virtual reality or other environment.

In one or more embodiments, with the use of a camera or other detectionmechanism pointed toward a user of system 100, a user may perform handmovements/gestures in order to alter the content in the virtual realityor other environment. The camera etc. may be communicatively coupled toelectronic device 112 through communication media 116, allowing thecamera etc. to provide input to electronic device 112 that electronicdevice 112 can use to alter virtual reality or other content. As anexample, if a user's path in the virtual reality or other environment isobstructed by an object, the user may wish to push the user's hands tomove the object out of the way. Upon the user making a pushing movementin the real world, the camera may detect this movement and generateinput that may be interpreted (e.g., by electronic device 112) as auser-generated command to move the obstructing object in the virtualreality or other environment.

In order to increase the accuracy involved in detecting the variousvoltages and currents that may be generated using motors 102, 103, 104,and/or 106, source/sink 110, and/or electronic device 112, in responseto the different movements/gestures performed by the user, one or moreembodiments include a tutorial service that may be used for calibrationpurposes. For example, during a tutorial, a user may be asked to performa variety of movements/gestures that may be performed while userinteracts with the virtual reality or other environment. Components ofsystem 100, such as motor(s) 102, 103, 104, 106, user interface surface108, a camera, electronic device 112 (including virtual realitycomponent 134), and/or any other component described herein, may be usedto generate a voltage or current in response to each of these differentmovements/gestures. As a voltage or current is generated with themovement/gesture in the tutorial, electronic device 112 may storeinformation relating to the voltage or current associated with themovement/gesture.

Storing this information may enable electronic device 112 to trigger thecorrect command in the virtual reality or other environment in responseto the user's movement/gesture. By way of example, the tutorial may askthe user to perform movements/gestures described above, such as walkingcloser to an edge of user interface surface 108 or stepping with user'sfoot at an angle. Once the voltage or current associated with these actsis stored during the tutorial service, electronic device 112 may moreaccurately detect when the user performs the acts later by detecting thesame or similar voltages or currents as the voltages or currentsgenerated during the tutorial. So, for example, when the user decides towalk closer to the edge of user interface surface 108, electronic device112 can more accurately implement the command associated with thismovement, instead of mistaking the movement and implementing a commandassociated with another movement/gesture. This calibration process maybe used for any user-generated commands that may be used in conjunctionwith system 100 to provide a more accurate virtual reality or otherexperience.

In one or more embodiments, user interface surface 108 may use orinclude one or more force sensors. Force sensors may include a load pin,load cell, a force transducer, etc. Force sensors may be used to measureforces applied to various portions of user interface surface 108. Themeasured force can be used along with speed measurements of userinterface surface 108 to provide increased accuracy in detectinguser-generated gesture commands. As an example, a user may wish to leanto the side of user interface surface 108 to cause a character in avirtual reality or other environment to lean similarly. An electricalsignal may then be generated that corresponds to such a position (e.g.,leaning). Electronic device 112 (e.g., by virtual reality component 134)may process this electrical signal and cause the character in thevirtual reality or other environment to lean to the left.

As alluded to above, FIG. 1A also shows that motor 106 may be includedin system 100 to provide an alternative or additional means ofcontrolling the movement of user interface surface 108. Motor 106 may becoupled to source/sink 110. Source/sink 110 may output one or morecurrents or voltages to motor 106 and/or may obtain as input one or morecurrents or voltages from motor 106. It should also be appreciated thatsource/sink 110 may additionally or alternatively be coupled to anyother motors of system 100. In one or more embodiments, source/sink 110may provide an electrical signal to motor 106 to control motor 106independently of other motors in system 100. For example, whereas motor104 may be controlled with a signal generated using motor 102, motor 106may be controlled using a signal from source/sink 110. It should also beappreciated that in one or more embodiments, a combination of feedbackfrom another motor and input from source/sink 110 may also be used. Forexample, motor 104 may obtain feedback from motor 102 and also obtaininput from source/sink 110.

Motor 106 may be used in conjunction with other motor(s) 102, 103, 104to provide dynamic virtual reality ground effects. By way of example, insome cases, the combination of motor 102 and motor 104 may not providesufficient assistance when user interface surface 108 startstransitioning from a stationary to a non-stationary state. For example,this may be the case where the movement of user interface surface 108 isnot sufficient to drive motors 102 and 104 at the requisite level. Insuch cases, source/sink 110 may be used to generate a straight polarityinput signal that may cause motor 106 to assist in speeding up userinterface surface 108. Additionally or alternatively, motor 106 inconjunction with source/sink 110 may be used instead of motors 102and/or motor 104 to assist the user in overcoming the inertia associatedwith user interface surface 108. In one or more embodiments, source/sink110 may be used to generate a reverse polarity input signal for motor106 that can be used to cause motor 106 to aid motor 104 in slowing thespeed of user interface surface 108 (e.g., if the speed of userinterface surface 108 meets or exceeds a threshold). Motor 106 can alsobe used without motor 104 to slow the speed of user interface surface108.

FIG. 1A shows that in addition to motors 102, 103, 104, and 106 and userinterface surface 108, system 100 can, as alluded to above, includeelectronic device 112 coupled to other elements of system 100 throughcommunication media 116. In one or more embodiments, communication media116 may be based on one or more wireless communication protocols such asBluetooth®, ZigBee, 802.11 protocols, Infrared (IR), Radio Frequency(RF), 2G, 3G, 4G, 5G, etc., and/or wired protocols and media.Communication media 116 may including cables/wires. Communication media116 may be implemented as a single medium in some cases.

Communication media 116 may be used to connect or communicatively coupleelectronic device 112 and remote devices, to one another or to anetwork, and communication media 116 may be implemented in a variety offorms. For example, communication media 116 may include an Internetconnection, such as a local area network (LAN), a wide area network(WAN), a fiber optic network, internet over power lines, a hard-wiredconnection (e.g., a bus), and the like, or any other kind of networkconnection. Communication media 116 may be implemented using anycombination of routers, cables, modems, switches, fiber optics, wires,radio (e.g., microwave/RF links), and the like. Further, communicationmedia 116 may be implemented using various wireless standards, such asBluetooth, Wi-Fi, 3GPP standards (e.g., 2G GSM/GPRS/EDGE, 3GUMTS/WCDMA/HSPA/HSPA+/CDMA2000, 4G LTE/LTE-U/LTE-A, 5G), etc. Uponstudying the present disclosure, one of skill in the art will recognizeother ways to implement communication media 116 for communicationspurposes.

In example implementations, communication media 116 may be or include awired or wireless wide area network (e.g., cellular, fiber, and/orcircuit-switched connection, etc.) for electronic device 112 and otherremote devices, which may be relatively geographically disparate; and insome cases, aspects of communication media 116 may involve a wired orwireless local area network (e.g., Wi-Fi, Bluetooth, unlicensed wirelessconnection, USB, HDMI, standard AV, etc.), which may be used tocommunicatively couple aspects of system 100 that may be relativelyclose geographically.

Electronic device 112 and/or additional remote devices that may bepresent in system 100 may use or include a variety of electroniccomputing devices, such as, for example, a virtual reality headset, asmartphone, tablet, laptop, desktop PC, wearable device, etc. By way ofexample, electronic device 112 and/or additional remote devices mayinclude or be used in conjunction with devices adapted for virtualreality and/or augmented reality applications, such as a headset,glasses, gloves, etc. A graphical user interface (GUI) of electronicdevice 112 may perform such functions as accepting certain types of userinput and displaying virtual reality or other content. The GUI may beprovided using any operating systems or other software application, suchas, for example, iOS, Android, Windows Mobile, Windows, Mac OS, ChromeOS, Linux, Unix, a gaming platform OS (e.g., Xbox, PlayStation, Wii),etc.

As mentioned, electronic device 112 and other remote devices may take avariety of forms, such as a virtual reality headset, desktop or laptopcomputer, a smartphone, a tablet, a smartwatch or other wearableelectronic device, a television or other audio or visual entertainmentdevice or system, a camera (including still shot or video) or the like.Electronic device 112 and other remote devices may communicate withother devices and/or with one another using communication media 116.Electronic device 112 and other remote devices may be used to performvarious operations described herein with regard to one or more disclosedsystems and methods. As an example, system 100 may connect viacommunication media 116 to virtual reality headsets of other virtualreality etc. users, allowing multiple users within a given virtualreality or other environment to communicate and interact with oneanother. Upon studying the present disclosure, one of skill in the artwill appreciate that system 100 may include multiple electronic devices112, remote devices, and communication media 116.

FIG. 1B depicts an example of electronic device 112 that includesexamples of additional aspects of the present disclosure that may beimplemented in connection with system 100. Electronic device 112 may becouplable to a virtual reality device such as a headset. In one or moreembodiments, electronic device 112 may be or be used as a virtualreality device. As illustrated, electronic device 112 may includeconnectivity interface 124, which may further include transceiver 126 tocommunicatively couple electronic device 112 to, for example, remotedevices and/or components of system 100, via communication media 116. Inthe illustrated embodiment, electronic device 112 further includesstorage 128 (which in turn may store instructions 130), virtual realitycomponent 134, camera 136, processor/circuitry 140, real time clock 142(which may be used to provide a clock or multiple clocks for electronicdevice 112), and user interface 138 (e.g., a GUI), which may be used topresent virtual and other content to a viewer using a display ofelectronic device 112. A bus (not shown in FIG. 1B) may be used tointerconnect the various elements of electronic device 112 and transferdata between these elements. It should be appreciated at this juncturethat in embodiments, remote devices may be substantially similar toelectronic device 112, including all or some of the components ofelectronic device 112 shown in FIG. 1B.

In FIG. 1B, connectivity interface 124 may interface electronic device112 to communication media 116, such that electronic device 112 may becommunicatively coupled to remote devices and/or elements of system 100via communication media 116. Transceiver 126 of connectivity interface124 may include multiple transceiver modules operable on differentwireless standards. Transceiver 126 may be used to send/receive movementinformation from remote devices and/or user interface surface 108 and/ormotors 102, 103, 104, 106, and in some cases, to send/receiveinformation related to a virtual reality object and/or virtual realitycontent. Additionally, connectivity interface 124 may include additionalcomponents for controlling radio and/or wired connections, such asbaseband and/or Ethernet modems, audio/video codecs, and so on.

In embodiments, transceiver 126 may utilize Bluetooth, ZIGBEE, Wi-Fi,GPS, cellular technology, or some combination thereof. Further, althoughFIG. 1B illustrates a single transceiver 126 for transmitting/receivinginformation, separate transceivers may be dedicated for communicatingparticular types of data or for doing so in particular fashions. In somecases, transceiver 126 may include a low energy transmitter/receiversuch as a near field communications (NFC) transmitter/receiver or aBluetooth Low Energy (BLE) transmitter/receiver. In further exampleimplementations, separate wireless transceivers may be provided forreceiving/transmitting high fidelity audio and/or video data. In yetadditional embodiments, a wired interface (e.g., micro-USB, HDMI, etc.)may be used for communicating data between electronic device 112, remotedevices, and/or system 100. In some cases, transceiver 126 may beimplemented as only a transmitter with no receiver. In some cases,transceiver 126 may be implemented as only a receiver with notransmitter.

Storage 128 may include volatile memory (e.g., RAM) and/or non-volatilememory (e.g., flash storage), may include any of EPROM, EEPROM, cache,or may include some combination/variation thereof. In variousembodiments, storage 128 may store user input data and/or other datacollected by electronic device 112 (e.g., movement informationassociated with user interface surface 108, information related tovirtual reality or other content displayed to a user, calibration data,voltage or current information from motors 102, 103, 104, 106, orinformation derived from the foregoing, etc.). Storage 128 may also beused to store downloaded content (e.g., movies, photos, games, virtualor augmented reality programs or applications, and so on) for laterretrieval and use, e.g., in connection with the generation and provisionof virtual reality or other content. Additionally, storage 128 may storeinstructions 130 that, when executed using processor/circuitry 140, forexample, can cause electronic device 112 to perform various operationsthat will be described in further detail herein (e.g., in connectionwith FIGS. 2A, 2B, and 2C).

In various embodiments, a user may interact with electronic device 112via user interface 138, which may include a display (not shown) fordisplaying a virtual reality or other environment and/or other virtualor augmented reality content to a user. By way of example, such adisplay may be implemented in connection with a virtual reality headsetthat can accept movement information generated by user interaction asinputs. In one or more embodiments, the display may be separate fromelectronic device 112. For example, electronic device 112 may be asmartphone or the like and the display may be a virtual reality headsetthat may be coupled to the smartphone. Instructions 130 may be used forprocessing and/or presenting virtual reality or other content usingelectronic device 112, according to various operations described herein.

Instructions 130 may be downloaded, installed, and/or initiallyconfigured/setup on electronic device 112. For example, electronicdevice 112 may obtain instructions 130 from a remote device, a server, acomponent of system 100, or from another source accessed viacommunication media 116, such as an application store or the like.Following installation and setup, instructions 130 may be used to accessmovement information, calibration data, and/or modify virtual realitycontent, as will be described herein. Instructions 130 may also be usedto interface with other electronic devices, for example, to obtainmotion data captured by a camera, as will be described herein.

Instructions 130 may include various code/functional modules, such as,for example, a movement modification module, a virtual reality contentmodification module, a motor control module, etc. These modules may beimplemented separately or in combination. Each module may use or includecomputer-readable media and may use or include computer-executable codestored in memory, such that the code may be operatively coupled toand/or executed by processor/circuitry 140 to perform specific functions(e.g., as described herein, including with regard to various systems,operations, and flow diagrams, etc.) with respect to providing virtualreality content and controlling motors 102, 103, 104, 106 and/orsource/sink 110. Instructions 130 may be associated with a nativeapplication modified with a software design kit (e.g., depending on theoperating system) in order to carry out the functionalities/featuresdescribed herein.

As shown in FIG. 1B, electronic device 112 may include virtual realitycomponent 134. In one or more embodiments, virtual reality component 134may be integrated into and/or implemented in connection withinstructions 130 (e.g., as part of a virtual reality module or thelike). In some cases, aspects of instructions 130 relating to virtualreality features may be considered to be part of virtual realitycomponent 134. Virtual reality component 134 may in one or moreembodiments also include or use one or more sensors, such as anaccelerometer, a gyroscope, a camera, etc. Virtual reality component 134may also obtain information from peripheral components such as gloves,etc. It should also be appreciated that virtual reality components 134may have augmented reality capabilities, or may in some cases haveaugmented but not virtual reality capabilities (e.g., may be consideredan augmented reality component).

Virtual reality component 134 may enable electronic device 112 todisplay virtual reality or other content, and may further use movementinformation derived from user interface surface 108 and/or motors 102,103, 104, 106 to modify virtual reality or other content displayed to auser (e.g., by electronic device 112 or other display). As an example, auser may wish to turn the perspective or character around in a virtualreality or other environment to see what is behind the user or to turnback and walk to toward where the user came from. To accomplish this, auser may turn around on user interface surface 108 and begin walking,such that user interface surface 108 begins moving in the oppositedirection. Motors 102, 103, 104 and/or 106 may then be used to generatea signal(s) related to this movement, and virtual reality component 134may interpret the signal(s) and cause the character or camera in thevirtual reality or other environment to turn around according to theuser-generated command.

Additionally, virtual reality component 134 may be coupled to motor(s)102, 103, 104, 106 in order to control the same based on virtual realityor other content being presented to a user. For example, if the surfaceon which the user is walking in the virtual reality or other environmentis snow, virtual reality component 134 may be used to control motor 106that in turn can control user interface surface 108 to replicate theexperience of walking in snow. It should also be appreciated thatvirtual reality component 134 may be coupled to source/sink 110 forpurposes of modifying virtual reality or other content based onsignaling from source/sink 110, and also for controlling source/sink110, motor 106, or other motor(s) based on signaling from virtualreality component 134 (e.g., to control user interface surface 108 toapproximate the virtual or other environment being presented to theuser).

By way of example, virtual reality component 134 may use or includesoftware configured to exchange and/or process information regarding themovement of user interface surface 108 or the virtual reality or othercontent displayed to a user (e.g., by electronic device 112 or separatedisplay). Using one or more of motors 102, 103, 104, 106, virtualreality component 134 may obtain movement information, and in responseto such information may alter the virtual reality or other contentdisplayed to the user. Alternatively or additionally, based on changesto the virtual reality or other environment presented to the user,virtual reality component 134 may be used to control the movement ofuser interface surface 108 through signaling provided to motors 102,103, 104, and/or 106, and/or to source/sink 110.

FIG. 1B shows that, as mentioned above, electronic device 112 mayinclude processor/circuitry 140. Processor/circuitry 140 may include aprocessor or processor modules, including, by way of example, anapplications or other processor that interfaces with and/or controlsother elements of electronic device 112 (e.g., connectivity interface124, instructions 130, storage 128, user interface 138, camera 136,and/or virtual reality component 134). Processor/circuitry 140 mayinclude a controller that provides various controls (e.g., interfaceswith electronic or physical buttons and switches) related to theoperation of camera 136, user interface 138, and the like, andinterfaces with drivers of various audio/visual components of electronicdevice 112. Additionally, the controller may include various controlsrelated to the gathering of movement information, calculations madeusing the movement information, calibration data, as well as thesetting/modification/control of characteristics of virtual reality orother content, such as will be described in further detail herein.Processor/circuitry 140 may be communicatively coupled to virtualreality component 134 such that virtual reality component 134 can useprocessor/circuitry 140 to execute operations and other featuresdescribed herein.

Processor/circuitry 140 may include processors (including, in someinstances, logic circuits), memory, a battery and power circuitry, andother circuitry drivers for periphery components, such as camera 136 andaudio/visual/haptic interfaces that may be included in user interface138. Processor/circuitry 140 and any processors thereof may includelogic circuits for receiving, processing, and/or storing content orinformation obtained and/or generated by, and/or data input to,electronic device 112, and content or information to be transmitted ordelivered (e.g., displayed) by electronic device 112. More particularly,as shown in FIG. 1B, processor/circuitry 140 may be coupled by a bus(not shown) to a display of user interface 138 as well as toconnectivity interface 124 and storage 128 (including instructions 130),as well as to virtual reality component 134 and camera 136. It shouldalso be appreciated that processor/circuitry 140 may be coupled to anexternal display. Hence, processor/circuitry 140 may receive and processelectrical signals generated by these respective elements and thusperform various functions. By way of example, processor/circuitry 140may access stored content from storage 128 at the direction ofinstructions 130, and process the stored content for display and/oroutput by user interface 138. Additionally, processor/circuitry 140 mayprocess the stored content for transmission via connectivity interface124 and communication media 116 to remote devices, a separate (e.g.,external) display, and/or components of system 100 such as userinterface 108, motors 102, 103, 104, and 106, and/or source/sink 110.

In one or more embodiments, logic circuits of processor/circuitry 140may further detect, calculate, and/or store data (e.g., movement andvirtual reality or other content information) obtained from motors 102,103, 104, and/or 106 and/or source/sink 110 and/or another remote source(e.g., from a remote device). The logic circuits may use this input toset/modify aspects of the virtual reality or other content beingdisplayed to the user (e.g., using user interface 138 of electronicdevice 112 or a separate display), as well as to set/modify the movementof user interface surface 108 (e.g., by controlling motors 102, 103,104, and 106 and/or source/sink 110).

Processor/circuitry 140 may be used to drive/control and/or gatherinformation from other peripheral components not shown in detail in FIG.1B, such as components of system 100. For example, processor/circuitry140 may interface with and obtain electrical signals from motors 102,103, 104, and 106 that may be connected to user interface surface 108,and/or from source/sink 110, and use the electrical signals to modifythe virtual reality or other content being presented to the user. Forexample, processor/circuitry 140 may monitor the voltages and/orcurrents generated or obtained by source/sink 110, and modify virtualreality or other content as processor/circuitry 140 detects changes tothose voltages or currents. Processor/circuitry 140 may also interfacewith video input/output mechanisms such as HDMI, USB, and the like.

In one or more embodiments, a camera (which may in some cases besubstantially similar to camera 136), may be couplable to electronicdevice 112 via communication media 116, and may be used to obtainmovement information. Electronic device 112, through communication media116, may obtain movement information generated using the camera to alterthe virtual reality or other environment and generate improved virtualreality ground effects as described herein. The camera may be designedto detect changes in the body movement and position of a user. Forexample, the camera may be configured to detect certain user gesturessuch as hand movement, turning, leaning, climbing, crouching, jumping,and sitting to expand the capacity of system 100 to control/modifyvirtual reality or other content. As an example, if a user wishes tojump on user interface surface 108 to cause a character in the virtualreality environment to jump, the camera can detect such a movement andgenerate a signal that may be interpreted by virtual reality component134 as a user-generated command to cause the character in the virtualreality environment to jump.

Having described some of the various elements of system 100 andelectronic device 112 shown in FIGS. 1A and 1B, one or more exampleembodiments that may use some of these elements to provide dynamicvirtual reality ground effects will now be described in connection withFIG. 2A.

FIG. 2A illustrates method 200 that may be used to provide dynamicvirtual reality ground effects. Here it should be appreciated that theoperations described in connection with method 200 and/or other methodsdescribed herein need not be performed in the order described or shown.Additionally, it should be appreciated that any operation described mayinclude one or more sub-operations, and/or may be a sub-operation ofanother operation. Furthermore, additional operation(s) may beinterposed between any two described operations without departing fromthe scope of the disclosure.

At operation 202, method 200 includes user interface surface 108obtaining user input. For example, a user may engage in an action orgesture that causes user interface surface 108 to obtain the user input.Such action or gesture may include standing still, transitioning from astationary to non-stationary state (e.g., by starting to walk or run),distributing weight to certain areas of user interface surface 108, andperforming other gestures such as turning, leaning, climbing, crouching,jumping, or sitting.

At operation 204, method 200 includes user interface surface 108 movingin response to the user input and driving motor 102 (and/or anothermotor of system 100). For example, when user interface surface 108begins moving, such as when a user starts walking or running totransition from a stationary to non-stationary state, this motion may beused to drive motor 102 that may be connected to user interface surface108. In addition, once a user begins walking at steady speed on userinterface surface 108, this may cause motor 102 to be driven at aconstant rate. Further, a user may wish to reduce speed on userinterface surface 108, such as when a user transitions from running towalking, or transitions from a non-stationary to stationary state, whichmay reduce or halt the rate at which motor 102 is driven.

At operation 206, method 200 includes motor 102 generating a feedbackelectrical signal in response to the movement of user interface surface108. For example, as motor 102 (and/or another motor of system 100) isdriven by user interface surface 108 movement, the movement of motor 102may be used to generate a feedback electrical signal. For example, whena user begins transitioning from a stationary to non-stationary state,such as beginning to walk or run, motor 102 may be used to generate avoltage or current that can be used as a straight polarity version of afeedback electrical signal. If the user begins decelerating, causinguser interface surface 108 to reduce speed, such as transitioning fromrunning to walking, motor 102 may be used to generate a voltage orcurrent that can be used as a reverse polarity version of a feedbackelectrical signal.

At operation 208, method 200 includes driving motor 104 (and/or anothermotor of system 100) using the feedback electrical signal. Motor 104 mayalso be coupled to user interface surface 108. Motor 102 may send avariety of feedback electrical signals to drive motor 104. For example,when a user begins transitioning from a stationary to non-stationarystate, motor 102 may be used to generate a straight polarity version ofthe feedback electrical signal to drive motor 104, which may cause motor104 to begin facilitating the movement of user interface surface 108 soas to reduce non-realistic friction and ground drag as the user beginsmoving.

At operation 210, method 200 optionally includes driving motor 106(and/or another motor of system 100) using source/sink 110. Motor 106may also be coupled to user interface surface 108. Source/sink 110 mayoutput one or more currents or voltages to drive motor 106. Theseelectrical signals may be used to control motor 106 independently ofother motors in system 100. For example, these electrical signals may beused to cause motor 106 to speed up or decrease the speed of userinterface surface 108, independent of any feedback electrical signalgenerated using motor 102 that may be applied to motor 104. Theelectrical signals may also be used to cause motor 106 to assist othermotors in driving user interface surface 108. For example, motor 106 mayhelp motor 104 to increase the speed of user interface surface 108 tothe requisite speed as a user begins transitioning from a stationary tonon-stationary state, thus diminishing or eliminating unnatural groundeffects.

At operation 212, method 200 optionally includes varying an inputelectrical signal that may be applied to motor 106 using source/sink110. Input electrical signals applied to motor 106 using source/sink 110may be controlled or otherwise varied to effect a desired motion of userinterface surface 108, including based on the virtual reality or othercontent presented to a user. For example, if the ground surface in thevirtual reality or other environment displayed to the user switches fromdirt to ice, virtual reality component 134 may be used to alter theinput electrical signal applied to motor 106, causing motor 106 todecrease the resistance of user interface surface 108. To accomplishthis, virtual reality component 134 may increase the magnitude of astraight polarity signal applied to motor 106, causing motor 106 toincrease its speed or responsiveness so as to simulate possible slippingand increased speed that may occur if the user were to actually walk onice.

FIG. 2B illustrates additional features that may be included in certainoperations of method 200. For example, in one or more embodiments,varying the input electrical signal according to operation 212 of method200 may entail, at operation 1120, cyclically changing a voltage appliedto motor 106 (and/or another motor of system 100). This may additionallyor alternatively entail cyclically changing other electrical signalsthat may be applied to motor 106, such as current and the like.

By way of example virtual reality component 134 may cyclically vary thevoltage(s) and/or current(s) etc. applied to motor 106 in order toprovide enhanced ground effects. To illustrate, if a user comes acrosssnow in the virtual reality or other environment, virtual realitycomponent 134 may detect this and cause source/sink 110 to cyclically ornon-cyclically generate voltage(s) and/or current(s) etc. that may beapplied to motor 106 in order to further increase the accuracy andeffect of the phenomena of stepping through snow. The voltage(s) and/orcurrent(s) signals may be cyclically or otherwise repeated (in somecases rapidly, for example, at 0.25 second intervals) and may causemotor 106 to increase or decrease the resistance/responsiveness of userinterface surface 108 depending on if the user is picking up or placingthe user's foot down in the snow in connection with taking a step.Similarly, these signals may also be used to simulate walking throughwater, sand, mud, slime, ice, or other related surfaces that may beexperienced in the virtual reality or other environment. For example, asmentioned, to simulate an icy surface, the resistance of user interfacesurface 108 may be decreased (e.g., responsiveness increased), in somecases dramatically, through the control of motor 106 by source/sink 110(e.g., by applying voltage(s) and/or current(s) etc.).

Returning to FIG. 2A, at operation 214, method 200 optionally includesdriving motor 104 (and/or another motor of system 100) with a reversepolarity voltage signal. Motor 104 may additionally or alternatively bedriven by other reverse polarity electrical signals, such as current andthe like. This may be done if a detected speed of user interface surface108 exceeds a threshold. By way of example, as a user is running on userinterface surface 108, the user may reach or exceed a threshold speed,resulting in unsafe conditions and the possibility of user falling offuser interface surface 108. Once a speed at or above the threshold isdetected (e.g., using electronic device 112), motor 102 may be used togenerate a reverse polarity voltage and/or current to drive motor 104 tobegin braking and slow the speed of user interface surface 108 in orderto bring the user back to a safe speed. Motor 104 may be the only motorobtaining a reverse polarity voltage or current to slow the speed ofuser interface surface 108. In some cases, motor 106 may additionally oralternatively obtain a reverse polarity signal to assist motor 102and/or motor 104 in the process of slowing the speed of user interfacesurface 108, as will now be described.

As shown in FIG. 2C, operation 210 of method 200 optionally includes, atoperation 1122, driving motor 106 (and/or another motor of system 100)using a reverse polarity voltage. Motor 106 may additionally oralternatively be driven by other reverse polarity electrical signals,such as current and the like. As described above, if user interfacesurface 108 meets or exceeds the threshold speed, motor 102 may be usedto generate a reverse polarity version of the feedback electrical signalto drive motor 104 to begin braking and slow the speed of user interfacesurface 108 to bring the user back to a safe speed. Additionally oralternatively, source/sink 110 may be used to generate a reversepolarity voltage or current to drive motor 106 to assist motor 102and/or motor 104 in slowing the speed of user interface surface 108 inorder to bring the user back to a safe speed.

In one or more embodiments, a reverse polarity signal(s) may also beused to drive motor 104 and/or motor 106 if, in the virtual reality orother environment, the user is in an environment where walking and/ormoving may be slower than normal, such as, for example, on water, snow,sand, slime, mud, or another surface. In connection with operation 212,virtual reality component 134 may alter the signal used to drive motor106 (and/or another motor of system 100), in some cases by generating areverse polarity signal that causes motor 106 to slow the movement ofuser interface surface 108 and provide resistance to the user while theuser is walking. This can simulate the increased difficulty in walkingthrough certain environments.

The amount of resistance provided may depend on the type and amount of agiven element (e.g., more resistance to simulate walking through heavysnow than to simulate walking through shallow water). Hence, informationrelating to the display of virtual reality or other content may be usedto control motor 104 and/or motor 106 and ultimately the resistance thatuser interface surface 108 presents to the user. Changing the polarityof the signal used to drive motor 106 (and/or another motor of system100) may simulate walking on an incline or a decline (decreasedresistance), or any other type of situation in which the resistance theuser experiences may be changed to convey realistic ground effects thattrack what a user experiences in a virtual reality or other environment.

Referring back to FIG. 2A, at operation 216, method 200 optionallyincludes using electrical signal(s) generated using one or more ofmotors 102, 103, 104, 106 and/or source/sink 110 to change virtualreality or other content presented to a user. By way of example, a usermay wish to transition from walking to running to increase the movementspeed of a character in the virtual reality or other environment. As thespeed of user interface surface 108 increases, one or more of motors102, 103, 104, 106 and/or source/sink 110 may be used to generate or maybe provided with electrical signals related to this movement. Virtualreality component 134 may then interpret these signals and cause thecharacter in the virtual reality or other environment to move with anincreased speed.

Additionally, a user may wish to transition from running to walking andslow the movement of user interface 108. One or more of motors 102, 103,104, 106 and/or source/sink 110 may be used to generate or be providedwith electrical signals related to this movement. Virtual realitycomponent 134 may then interpret these signals and cause the characterin the virtual reality or other environment to move at a decreasedspeed. Further, if a user wishes to cause the perspective or a characterin the virtual reality or other environment to turn or rotate, a usermay, for example, walk closer to a right or left edge of user interfacesurface 108. One or more of motors 102, 103, 104, 106 and/or source/sink110 may be used to generate or may be provided with electrical signalsrelated to this movement. Virtual reality component 134 may theninterpret these signals and cause the perspective or character in thevirtual reality or other environment to turn or rotate accordingly.

FIG. 3 illustrates example computing module 300, which may in someinstances include a processor/controller resident on a computer system(e.g., electronic device 112, and/or remote devices). Computing module300 may be used to implement various features and/or functionality ofembodiments of the systems, devices, and methods disclosed herein. Withregard to the above-described embodiments set forth herein in thecontext of systems, devices, and methods described with reference toFIGS. 1A through 2C, including embodiments involving system 100,electronic device 112, and/or other remote devices, one of skill in theart will appreciate additional variations and details regarding thefunctionality of these embodiments that may be carried out by computingmodule 300. In this connection, it will also be appreciated by one ofskill in the art upon studying the present disclosure that features andaspects of the various embodiments (e.g., systems) described herein maybe implemented with respect to other embodiments (e.g., methods)described herein without departing from the spirit of the disclosure.

As used herein, the term module may describe a given unit offunctionality that may be performed in accordance with one or moreembodiments of the present application. As used herein, a module may beimplemented utilizing any form of hardware, software, or a combinationthereof. For example, one or more processors, controllers, ASICs, PLAs,PALs, CPLDs, FPGAs, logical components, software routines or othermechanisms may be implemented to make up a module. In implementation,the various modules described herein may be implemented as discretemodules or the functions and features described may be shared in part orin total among one or more modules. In other words, as would be apparentto one of ordinary skill in the art after reading this description, thevarious features and functionality described herein may be implementedin any given application and may be implemented in one or more separateor shared modules in various combinations and permutations. Even thoughvarious features or elements of functionality may be individuallydescribed or claimed as separate modules, one of ordinary skill in theart will understand upon studying the present disclosure that thesefeatures and functionality may be shared among one or more commonsoftware and hardware elements, and such description shall not requireor imply that separate hardware or software components are used toimplement such features or functionality.

Where components or modules of the application are implemented in wholeor in part using software, in embodiments, these software elements maybe implemented to operate with a computing or processing module capableof carrying out the functionality described with respect thereto. Onesuch example computing module is shown in FIG. 3. Various embodimentsare described in terms of example computing module 300. After readingthis description, it will become apparent to a person skilled in therelevant art how to implement example configurations described hereinusing other computing modules or architectures.

Referring now to FIG. 3, computing module 300 may represent, forexample, computing or processing capabilities found within mainframes,supercomputers, workstations or servers; desktop, laptop, notebook, ortablet computers; hand-held computing devices (tablets, PDA's,smartphones, cell phones, palmtops, etc.); or the like, depending on theapplication and/or environment for which computing module 300 isspecifically purposed.

Computing module 300 may include, for example, one or more processors,controllers, control modules, or other processing devices, such as aprocessor 310, and such as may be included in circuitry 305. Processor310 may be implemented using a special-purpose processing engine suchas, for example, a microprocessor, controller, or other control logic.In the illustrated example, processor 310 is connected to bus 355 by wayof circuitry 305, although any communication medium may be used tofacilitate interaction with other components of computing module 300 orto communicate externally.

Computing module 300 may also include one or more memory modules, simplyreferred to herein as main memory 315. For example, random access memory(RAM) or other dynamic memory may be used for storing information andinstructions to be executed by processor 310 or circuitry 305. Mainmemory 315 may also be used for storing temporary variables or otherintermediate information during execution of instructions to be executedby processor 310 or circuitry 305. Computing module 300 may likewiseinclude a read only memory (ROM) or other static storage device coupledto bus 355 for storing static information and instructions for processor310 or circuitry 305.

Computing module 300 may also include one or more various forms ofinformation storage devices 320, which may include, for example, mediadrive 330 and storage unit interface 335. Media drive 330 may include adrive or other mechanism to support fixed or removable storage media325. For example, a hard disk drive, a floppy disk drive, a magnetictape drive, an optical disk drive, a CD or DVD drive (R or RW), or otherremovable or fixed media drive may be provided. Accordingly, removablestorage media 325 may include, for example, a hard disk, a floppy disk,magnetic tape, cartridge, optical disk, a CD or DVD, or other fixed orremovable medium that is read by, written to or accessed by media drive330. As these examples illustrate, removable storage media 325 mayinclude a computer usable storage medium having stored therein computersoftware or data.

In alternative embodiments, information storage devices 320 may includeother similar instrumentalities for allowing computer programs or otherinstructions or data to be loaded into computing module 300. Suchinstrumentalities may include, for example, fixed or removable storageunit 340 and storage unit interface 335. Examples of such removablestorage units 340 and storage unit interfaces 335 may include a programcartridge and cartridge interface, a removable memory (for example, aflash memory or other removable memory module) and memory slot, a PCMCIAslot and card, and other fixed or removable storage units 340 andstorage unit interfaces 335 that allow software and data to betransferred from removable storage unit 340 to computing module 300.

Computing module 300 may also include a communications interface 350.Communications interface 350 may be used to allow software and data tobe transferred between computing module 300 and external devices.Examples of communications interface 350 include a modem or softmodem, anetwork interface (such as an Ethernet, network interface card, WiMedia,IEEE 802.XX, or other interface), a communications port (such as forexample, a USB port, IR port, RS232 port Bluetooth® interface, or otherport), or other communications interface. Software and data transferredvia communications interface 350 may typically be carried on signals,which may be electronic, electromagnetic (which includes optical) orother signals capable of being exchanged by a given communicationsinterface 350. These signals may be provided to/from communicationsinterface 350 via channel 345. Channel 345 may carry signals and may beimplemented using a wired or wireless communication medium. Somenon-limiting examples of channel 345 include a phone line, a cellular orother radio link, an RF link, an optical link, a network interface, alocal or wide area network, and other wired or wireless communicationschannels.

In this document, the terms “computer program medium” and “computerusable medium” are used to generally refer to transitory ornon-transitory media such as, for example, main memory 315, storage unitinterface 335, removable storage media 325, and channel 345. These andother various forms of computer program media or computer usable mediamay be involved in carrying one or more sequences of one or moreinstructions to a processing device for execution. Such instructionsembodied on the medium, are generally referred to as “computer programcode” or a “computer program product” (which may be grouped in the formof computer programs or other groupings). When executed, suchinstructions may enable the computing module 300 or a processor toperform features or functions of the present application as discussedherein.

Various embodiments have been described with reference to specificexample features thereof. It will, however, be evident that variousmodifications and changes may be made thereto without departing from thebroader spirit and scope of the various embodiments as set forth in theappended claims. The specification and figures are, accordingly, to beregarded in an illustrative rather than a restrictive sense.

Although described above in terms of various example embodiments andimplementations, it should be understood that the various features,aspects and functionality described in one or more of the individualembodiments are not limited in their applicability to the particularembodiment with which they are described, but instead may be applied,alone or in various combinations, to one or more of the otherembodiments of the present application, whether or not such embodimentsare described and whether or not such features are presented as being apart of a described embodiment. Thus, the breadth and scope of thepresent application should not be limited by any of the above-describedexample embodiments.

Terms and phrases used in the present application, and variationsthereof, unless otherwise expressly stated, should be construed as openended as opposed to limiting. As examples of the foregoing: the term“including” should be read as meaning “including, without limitation” orthe like; the term “example” is used to provide illustrative instancesof the item in discussion, not an exhaustive or limiting list thereof;the terms “a” or “an” should be read as meaning “at least one,” “one ormore” or the like; and adjectives such as “conventional,” “traditional,”“normal,” “standard,” “known” and terms of similar meaning should not beconstrued as limiting the item described to a given time period or to anitem available as of a given time, but instead should be read toencompass conventional, traditional, normal, or standard technologiesthat may be available or known now or at any time in the future.Likewise, where this document refers to technologies that would beapparent or known to one of ordinary skill in the art, such technologiesencompass those apparent or known to the skilled artisan now or at anytime in the future.

The presence of broadening words and phrases such as “one or more,” “atleast,” “but not limited to” or other like phrases in some instancesshall not be read to mean that the narrower case is intended or requiredin instances where such broadening phrases may be absent. The use of theterm “module” does not imply that the components or functionalitydescribed or claimed as part of the module are all configured in acommon package. Indeed, any or all of the various components of amodule, whether control logic or other components, may be combined in asingle package or separately maintained and may further be distributedin multiple groupings or packages or across multiple locations.

Additionally, the various embodiments set forth herein are described interms of example block diagrams, flow charts, and other illustrations.As will become apparent to one of ordinary skill in the art afterreading this document, the illustrated embodiments and their variousalternatives may be implemented without confinement to the illustratedexamples. For example, block diagrams and their accompanying descriptionshould not be construed as mandating a particular architecture orconfiguration.

What is claimed is:
 1. A system for providing dynamic virtual realityground effects, the system comprising: a user interface surface;multiple motors coupled to the user interface surface, wherein at leastone of the motors is coupled to a virtual reality component of anelectronic device; wherein a first motor of the multiple motors isdriven by movement of the user interface surface and is used to generatea feedback electrical signal in response to the movement of the userinterface surface; wherein a second motor of the multiple motors isdriven using the feedback electrical signal.
 2. The system of claim 1,further comprising a third motor of the multiple motors that is drivenusing a source.
 3. The system of claim 2, wherein the virtual realitycomponent is adapted to vary an input electrical signal applied to thethird motor using the source.
 4. The system of claim 3, wherein thevirtual reality component is adapted to vary the input electrical signalapplied to the third motor based on virtual reality content presentedusing a display coupled to the electronic device.
 5. The system of claim3, wherein the source is a voltage source and the virtual realitycomponent is adapted to vary the input electrical signal by cyclicallychanging a voltage applied to the third motor.
 6. The system of claim 1,wherein the second motor is driven by a reverse polarity version of thefeedback electrical signal.
 7. The system of claim 6, wherein the secondmotor is driven by the reverse polarity version of the feedbackelectrical signal when a detected speed of the user interface surfaceexceeds a threshold.
 8. The system of claim 7, further comprising athird motor of the multiple motors that is driven using a voltagesource, wherein when the detected speed exceeds the threshold, the thirdmotor is driven with a reverse polarity voltage from the voltage source.9. The system of claim 1, wherein the virtual reality component isadapted to use an electrical signal generated using at least one of themultiple motors to make a change to virtual reality content presented toa user via a display associated with the electronic device.
 10. Thesystem of claim 9, wherein the change to the virtual reality contentcomprises a directional change, a rotational change, or a verticalchange.
 11. The system of claim 1, wherein a straight polarity versionof the feedback electrical signal is used to drive the second motor whenthe user interface surface transitions from a stationary to anon-stationary state.
 12. A method for providing dynamic virtual realityground effects, the method comprising: a user interface surfaceobtaining user input; the user interface moving in response to the userinput and driving a first motor; the first motor generating a feedbackelectrical signal in response to movement of the user interface surface;and driving a second motor using the feedback electrical signal, whereinthe second motor is coupled to the user interface surface.
 13. Themethod of claim 12, further comprising driving a third motor using asource, wherein the third motor is coupled to the user interfacesurface.
 14. The method of claim 13, further comprising varying an inputelectrical signal that is applied to the third motor using the source.15. The method of claim 14, wherein varying the input electrical signalis done using virtual reality content presented to a user of the userinterface surface.
 16. The method of claim 14, wherein the source is avoltage source and varying the input electrical signal comprisescyclically changing a voltage applied to the third motor.
 17. The methodof claim 12, wherein if a detected speed of the user interface surfaceexceeds a threshold, driving the second motor using the feedbackelectrical signal comprises driving the second motor by a reversepolarity version of the feedback electrical signal.
 18. The method ofclaim 17, further comprising driving the third motor with a reversepolarity voltage from a voltage source if the detected speed of the userinterface surface exceeds the threshold.
 19. The method of claim 12,further comprising using an electrical signal generated using one ormore of the first motor and the second motor to change virtual realitycontent.
 20. An electronic device for providing dynamic virtual realityground effects, the electronic device comprising logic circuitry coupledto a memory, wherein the memory stores instructions that, when executed,cause the logic circuitry to: obtain movement information for a userinterface surface using one or more motors; use the movement informationto change virtual reality content presented to a user by a display; andcontrol the user interface surface by changing electrical signals usedto drive one or more of the motors.